<?php

class Application_Model_ProyectosDCPost extends Sgit_Model
{
    protected $_name = 'gestion_tareas';
    protected $_primary = 'id';



    public function getTarea($id)
    {
        return $this->getTareas('',array(), $id);
    }



    public function getTareas($id_proyecto, $values = array(), $id = null)
    {


        $select = $this->getAdapter()->select();
        $select->from(array('gestion_tareas'));
       


        if (is_numeric($id))
        {
            $select->where('gestion_tareas.id= ?', $id);
            
        } else
        {
            
            $select->where('id_proyecto= ?', $id_proyecto);
            $select->where('respuesta_a IS NULL');
        
            //filter1
            if ($values['id_cat'])
                $select->where('gestion_tareas.id_cat= ?', $values['id_cat']);
            //filter2
            if ($values['id_sub_cat'])
                $select->where('gestion_tareas.id_sub_cat= ?', $values['id_sub_cat']);
            //filter2
            if ($values['id_sub_cat_in'])
                $select->where('gestion_tareas.id_sub_cat IN(?)', $values['id_sub_cat_in']);
            $select->order(array("fecha desc", 'id DESC'));
            
            
            if(!$this->respuestas){
                $this->respuestas=$this->getRespuestasAll($id_proyecto);
            }
            

        }


        
        $rows = $this->getAdapter()->fetchAll($select);
        $rows = $this->_prepara($rows);

        return $rows;

    }
    
    
    function getRespuestasAll($id_proyecto)
    {
       
        $select = $this->getAdapter()->select();
        $select->from(array($this->_name));

        $select->where('id_proyecto= ?', $id_proyecto);
        $select->where('respuesta_a IS NOT NULL');
        $select->order('fecha asc');

        $rows = $this->getAdapter()->fetchAll($select);
        $rows = $this->_prepara($rows);

        $rows= $this->assocArray($rows,'respuesta_a');

        return $rows;

    }
    
    
    
    


    function _prepara($rows)
    {
        $auth = Zend_Auth::getInstance();
        $auth->getIdentity()->id;


        $subCategorias = new Sgit_Form_Element_Select_ProyetosDCSubCategorias('id_sub_cat');
        $categorias = new Sgit_Form_Element_Select_ProyetosDCCategorias('id_cat');

        $m_usuario = new Application_Model_Usuario();
        $subcat = $subCategorias->getMultiOptions();
        $cat = $categorias->getMultiOptions();


        foreach ((array )$rows as $k => $v)
        {

            $rows[$k]['subcat'] = $subcat[$v['id_sub_cat']];
            $rows[$k]['cat'] = $cat[$v['id_cat']];
            $rows[$k]['usuario'] = $m_usuario->cacheAssoc($v['id_usuario'], 'nombre');
            $rows[$k]['fecha'] = Sgit_Filter_DateDbToLocalize::filter($v['fecha'], 'dd-MM-yyyy HH:mm');
            $rows[$k]['editor'] = ($auth->getIdentity()->id == $v['id_usuario']);
            //$rows[$k]['respuestas'] = $this->_getRespuestas($v['id']);
            $rows[$k]['respuestas'] =$this->respuestas[$v['id']]; //$this->getRespuestas($v['id']);
            
            $rows[$k]['objeto_cambio_text'] = Sgit_Util_SiNo::run($v['objeto_cambio']);

        }

        return $rows;
    }

    public function getBySubCat($arraysubcat, $values = array(), $id = null)
    {

        $select = $this->getAdapter()->select();


        $select->from(array('gestion_tareas'), array('id_proyecto', 'fecha', 'notas', 'files', 'id_empresa', 'id_sub_cat'));
        $select->joinLeft('gestion_proyectos', 'gestion_proyectos.id = gestion_tareas.id_proyecto', array('proyecto', 'f_inicio', 'f_final', 'f_entrega', 'f_repla'));
        $select->joinLeft('zonas', 'zonas.id = gestion_proyectos.id_zona', array('zona' => 'nombre'));
        $select->joinLeft('usuarios', 'usuarios.id = gestion_proyectos.jefe1', array('responsable' => 'nombre'));
        $select->joinLeft('estado_proyecto', 'estado_proyecto.id = gestion_proyectos.estado', array('estado' => 'nombre'));


        if ($values['id_proyecto'])
            $select->where('gestion_proyectos.id= ?', $values['id_proyecto']);
        if ($values['id_zona'])
            $select->where('gestion_proyectos.id_zona= ?', $values['id_zona']);
        if ($values['id_sub_cat'])
            $select->where('gestion_tareas.id_sub_cat= ?', $values['id_sub_cat']);
        else
            $select->where('id_sub_cat IN(?)', $arraysubcat);


        $estado = ($values['estado']) ? $values['estado'] : 1;
        $select->where('gestion_proyectos.estado= ?', $estado);


        $rows = $this->getAdapter()->fetchAll($select);


        return $rows;

    }


}
